/**
 * 有N个站点，每个站点距离起点的距离是Di，依次递增
 * 有M辆车，每辆车的发车时间是Ti，依次递增。
 * 有Q个询问，每次问：time, p
 * 即在time时刻到达第p个站点，需要等待公交的最短时间是多少
 * 第p个站点有车的时刻分别是：
 * T1 + Dp, T2 + Dp, T3 + Dp, T4 + Dp, ...
 * 因此二分搜索 time - Dp 即可
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using vll = vector<llt>;
using pii = pair<int, int>;
using pll = pair<llt, llt>;

int N, M, Q;
vi D;
vi T;

int proc(int time, int pos){
    auto p = equal_range(T.begin() + 1, T.end(), time - D[pos]);
    if(p.first != p.second) return 0;
    if(p.first == T.end()) return -1;
    return *p.first - time + D[pos];
}

void work(){
    cin >> N >> M;
    D.assign(N + 1, 0);
    for(int i=1;i<=N;++i) cin >> D[i];

    T.assign(M + 1, 0);
    for(int i=1;i<=M;++i) cin >> T[i];

    cin >> Q;
    for(int x,t,q=1;q<=Q;++q){
        cin >> t >> x;
        auto ans = proc(t, x);
        if(-1 == ans) cout << "TNT\n";
        else cout << ans << "\n";
    }
    return;
}


int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);	
    
    int nofkase = 1;
	// cin >> nofkase;
	while(nofkase--) work();
	return 0;
}